// 上面这个代码处理过度动画（默认加上不用管）
document.addEventListener("DOMContentLoaded", () => {
  setTimeout(() => {
    document.body.classList.add("sidenav-pinned");
    document.body.classList.add("ready");
  }, 200);
});

// 创建bootstrap弹窗
let toastBox = document.querySelector("#myToast");
const toast = new bootstrap.Toast(toastBox, {
  animate: true,
  autohide: true,
  delay: 3000,
});

const show = (msg) => {
  document.querySelector(".toast-body").innerHTML = msg;
  // 让 toast 展示
  toast.show();
};

// 配置基地址
axios.defaults.baseURL = "http://ajax-api.itheima.net";

//请求拦截器 只要发送任何请求 都会被这个拦截器 先拦住
axios.interceptors.request.use(
  function (config) {
    // 在发送请求之前做些什么 config配置对象
    // console.log(config);
    // 除了 登录和祖册两个接口 不需要 身份认证 其他的接口都需要身份认证
    // 发送 ajax 请求之前 只有 本地存储里面 有token 表示用户登录了 其他的请求 需要携带 Authorization
    const token = localStorage.getItem("wsnbb");
    console.log(token);
    if (token) {
      config.headers.Authorization = token;
    }
    return config;
  },
  function (error) {
    return Promise.reject(error);
  }
);

/* 
服务器响应数据 成功 走第一个回调函数
成功 可以将数据 脱壳
*/
axios.interceptors.response.use(
  function (response) {
    // console.log(response);
    // response 其实就是 axios().then()里面的回调函数
    // 对响应数据做点什么
    return response.data;
  },
  function (error) {
    if (error.response.status == 401) {
      location.href = "../login.html";
      localStorage.clear();    
    }
    // 对响应错误做点什么
    return Promise.reject(error);
  }
);


/* 退出功能 
  1. 获取 [退出] dom元素 注册点击事件
  2. 需要给用户 展示 提示对话框 confirm()
  3. 需要跳转 登录页面 清空 本地存储
 */